<?php
namespace app\api\controller;
use think\Controller;
use app\api\model\Venueappoint as Venueappoints;
use app\api\model\Order;
use app\api\model\Myaccount;
use app\api\model\Venue;
/**
 *
 * @author sj
 *场馆预约控制器
 */
class Venueappoint extends Co{
    /**
     * 创建预约
     * @param array
     * //登录要进行seesion cookie 记住密码进行保存
     *
     */
    private static $AppointModel;
    private $OrderModel;
    private static $Myaccount;
    
    protected $beforeActionList = [
        'berefo'
    ];
    
    public function berefo(){
        if(!self::$AppointModel){
            self::$AppointModel=new Venueappoints();
        }
        $this->OrderModel=new Order();
        if(!self::$Myaccount){
            self::$Myaccount=new Myaccount();
        }
    }
   public function makeAppointment(){
       //继承Common控制器
      //这里是get传递的ajax传递的json字符串 是key=>vakue
      //$str='{"place_id":"1","changdi":[{"appoint}]}'
       //{appoint:}
     // $data=input('post.appoint');
      $data=array('place_id'=>1,'riqi'=>'2017.11.9',
          'startime'=>array('8','9','10'),
          'endtime'=>array('9','10','11'),
          'type'=>[1,1,1],
          'appoint_fee'=>'23',
          'dongjie'=>20
       );
      //重新整理
      //预约需要支付的金额
      $data=array('place_id'=>1,'riqi'=>'2017.11.21','appoint_fee'=>23,'appont_time'=>"8:00-10:00",'startime'=>"8:00",'endtime'=>"9:00","dongjie"=>24);
      
  // echo json_encode($data);
    //die;
   // $posta_arr=input('post.obj');//接受页面异步确定预约是传输的json字符串
    //$posta_arr=quotReg($posta_arr);
   // $post_str='{"place_id":1,"appoint_time":["2017.11.9 8:00-9:00","2017.11.9 9:00-10:00","2017.11.9 10:00-11:00"],"type":[1,1,1],"appoint_fee":"23"}';
    //这个是ajax传递的json字符串 input('post.obj');
    $post_str=input('post.obj');
    $post_str=quotReg($post_str);
    $post_data=json_decode($post_str,true);
    $user_id='1';

    $post_data['user_id']=$user_id;
//     $place_id=$post_data['place_id'];
//     $appoint_fee=$post_data['appoint_fee'];
//     $riqi=$post_data['riqi'];
//     foreach ($post_data['startime'] as $key=>$va){
//        $post_new[$key]['place_id']=$place_id;
//        $post_new[$key]['startime']=$va;
//        $post_new[$key]['type']=$post_data['type'][$key];
//        $post_new[$key]['endtime']=$post_data['endtime'][$key];
//        $post_new[$key]['user_id']=$user_id;
//        $post_new[$key]['appoint_fee']=$appoint_fee;
//        $post_new[$key]['riqi']=$riqi;
//     }
      $res=self::$AppointModel->makeAppoint($post_data);


//     $place_id=$post_data['place_id'];
//     $appoint_fee=$post_data['appoint_fee'];
//     $riqi=$post_data['riqi'];
//     foreach ($post_data['startime'] as $key=>$va){
//        $post_new[$key]['place_id']=$place_id;
//        $post_new[$key]['startime']=$va;
//        $post_new[$key]['type']=$post_data['type'][$key];
//        $post_new[$key]['endtime']=$post_data['endtime'][$key];
//        $post_new[$key]['user_id']=$user_id;
//        $post_new[$key]['appoint_fee']=$appoint_fee;
//        $post_new[$key]['riqi']=$riqi;
//     }
      if($res){
        //ajaxReturn2(1,'ok','');
        //这里进行订单生成操作
        $data=array('user_id'=>$user_id,'order_number'=>create_sn(),'place_id'=>$post_data['place_id']);
        $re=$this->OrderModel->add($data);
        if($re){
            $where=array('user_id'=>$user_id,'dongjie'=>$post_data['dongjie']);
            self::$Myaccount->updateAccount($where);
            ajaxReturn2(1,'order sucess','');
        }else{
            ajaxReturn2(0,'order failed','');
        }
        //我的账户余额冻结
        
        
        //并且根据传递的数组的的type 长度进行计算
        //进行我的账户余额记录冻结账号
      }else{
          ajaxReturn2(0,'failed',$post_data);
      }
//      $str='{"place_id":1,"appoint_time":["2017.11.9 8:00-9:00","2017.11.9 9:00-10:00","2017.11.9 10:00-11:00"],"type":[1,1,1],"appoint_fee":"23"}';
//      $arr=json_decode($str,true);
//      dump($arr);
   }
   public function ajax(){
       return view();
   }
   /**
    * 我的预约
    */
   public function selectLists(){
        date_default_timezone_set('Asia/Shanghai');
       $page_num=empty(input('get.page_num'))?1:input('get.page_num');
       $page_size=empty(input('get.page_size'))?10:input('get.page_size');
       $user_id=session('user_id');
       //echo $user_id;
      $datetime=empty(input('get.datetime'))?'2017.11.9':input('get.datetime');
      $res=self::$AppointModel->MyselectInfos($user_id,$datetime);
     
      //dump($res);
     
          return view('myReser',array('data'=>$res));
      
   }
   //已结束预约评价
   public function evalate(){
       $post_data=input('post.');
      $res=self::$AppointModel->Evation($post_data);
      if($res){
          ajaxReturn2(1,'insert sucess','');
      }else{
          ajaxReturn2(0,'insert failed',$post_data);
      }
   }
   //上传头像文件调用Admin/Uploads/upload 修改参数即可

   public function upload(){
      return view('upload');



   }
   public function selectAppoint(){
      $res=self::$AppointModel->MyselectInfos(4,'2017.11.20');
      $count=count($res);
      $data=array();
      if($count==1){
     
      }else{
          for ($i=0;$i<$count;$i++){
             for ($j=$count-1;$j>$i;$j--){
                 //0 3-0 3 2 1 2,1 
                 // 1 3,2 
                 //2 3
               
               if($res[$i]['endtime']==$res[$j]['startime']){
                   $data[]=$res[$j];
                   $data[]=$res[$i];
               }else {
                   $data[]=$res[$j];
               }
                
             }
          }
         
      //$data=array_unique($data)
       $new_data=array();
       foreach ($data as $va){
           $new_data[]=$va['startime'];
           $new_data[]=$va['endtime'];
       }
       
      $data=a_array_unique($new_data);
      $data=SortPaxu($data);
    
      $re=IsCountinuous($data,count($data));
      var_dump($re);
      //页面就是进行判断如果不为空这里取出连续
      //如果第二个不为空也是取出第一个和最后一个即可
      //因为要么连续的 要么是单个的 
      //这里都进行返回过去
//       也就说要么连续要么单独的时间段
//       然后页面取出来即可
//       意味着用户就是定了8-9的还有12-16的课程
//       也就是说用户
    //return SortPaxu($data);
      }
     //$res= self::$AppointModel->AppointChongZhu(1, 4,'2017.11.20');
     //dump($res);
   }
   //这个是当用户取消预约违约的时候 就要查询 user_id place_id ri start end 查询出这个当时这个预约押金的进行查询出来
   //这就是站在用户的角度 用户预约场地的角度
   //也就是说当用户点了 好几个端的 8-10 11-12 17-18 这几个段
   //就需要 知道预约的日期 8-10 这一个中间 type=1 type=2 有几个就可以知道 type=1 正常 type=2乘以2倍 然后结束支付时 
   //修改用户账户余额的冻结账户 -这个   100,40 100,5 
   //然后如果用户没有按时进行参加这个时候取消或者违约 
   //查询出 11-12 type=1 (100-) 冻结账户5
   public function dongjieAccount(){
       
   }
   public function test(){
       $s=date('Y-m-d',strtotime("+1 days"));
       echo date("w",strtotime("+2 days"));
       switch ($s){
           case 2:echo "ss";
               break;
       }
   }
   public function con_make(){
       $VenueModel=new Venue();
       $place_id=input('get.place_id');
       $res=$VenueModel->VenueDetail_Item($place_id);
       //dump($res);
       return view('conf_appoint',array('res'=>$res));
   }
}